El software de análisis de estructuras RFEM 6 es la base de un sistema de software modular. El programa principal RFEM 6 se usa para definir estructuras, materiales y cargas de sistemas estructurales planos y espaciales compuestos por placas, muros, láminas y barras. El programa también le permite crear estructuras mixtas, así como modelar elementos sólidos y de contacto.
RSTAB 9 es un software potente de análisis y dimensionamiento en 3D de estructuras de vigas, pórticos o cerchas, que refleja el estado de la técnica actual y ayuda a los ingenieros y consultores de estructuras a cumplir con los requisitos de la ingeniería de estructuras moderna.
¿Está a menudo ocupado con el cálculo de secciones durante demasiado tiempo? Dlubal Software y el programa independiente RSECTION facilitan su trabajo al determinar y realizar un análisis de tensiones para varias secciones.
¿Siempre sabe de dónde viene el viento? ¡Desde la dirección de la innovación, por supuesto! Con RWIND 2 a su lado tiene un programa que utiliza un túnel de viento digital para la simulación numérica de los flujos de viento. El programa simula estos flujos alrededor de cualquier geometría de construcción y determina las cargas de viento en las superficies.
¿Está buscando una vista general de las zonas de carga de nieve, zonas de viento y zonas de sísmicas? Entonces está en el lugar correcto. Utilice la herramienta <i>Geo-Zone</i> para la determinación rápida de las cargas de nieve, velocidades de viento y zonas sísmicas según el Eurocódigo, CTE, ASCE 7-16 y otras normas internacionales.
¿Le gustaría probar la potencia de los programas de Dlubal Software? ¡Es su oportunidad! Con la versión completa gratuita de 90 días, puede probar todos nuestros programas por completo.
Una función para articulaciones lineales de comportamiento no lineal no está disponible actualmente en la biblioteca de alto nivel de Python. Sin embargo, dado que es posible usar parámetros definidos por el usuario como es habitual en el método para articulaciones lineal, tampoco es un problema generar articulaciones lineales de comportamiento no lineal.
En el programa de ejemplo, se crean primero dos superficies rectangulares con apoyos en nudo, que son las conectadas en la Línea 6.
La definición de la articulación lineal de comportamiento no lineal comienza a partir de la Línea 39. Primero, se crea un diccionario (dictionary) p con los parámetros. Es necesario definir tres grados de libertad de desplazamiento y un grado de libertad de giro. El valor 0.0 significa que el grado de libertad es libre. Si en su lugar se escribe un valor numérico, se interpreta como un muelle. Asegúrese de que se utilicen aquí las unidades básicas del SI. Al usar inf , el grado de libertad se define como fijo.
p
0.0
inf
Debe haber una no linealidad en la dirección y. Esto se establece con la clave (key) translational_release_u_y_nonlinearity. Este artículo describe cómo determinar los valores necesarios, como NONLINEARITY_TYPE_FAILURE_IF_POSITIVE.
translational_release_u_y_nonlinearity
NONLINEARITY_TYPE_FAILURE_IF_POSITIVE
La siguiente macro de VBA muestra la creación de un soporte nodal con la no linealidad de "Actividad Parcial". El código fuente se puede encontrar en Descargas.
Opción explícita
' --------------------------Soporte secundario ()' --------------------------
Soporte de atenuación (0) Como RFEM5.NodalSupportAtenuar ISup como RFEM5.INodalSupportAtenuar ISupPA como RFEM5.IPartialActivityDim nlPA como actividad parcial
e: Si Err.Number <> 0 Entonces MsgBox Err.Description`` Err.Source
End Sub
Um ein nicht lineares Element wie ein Stabendgelenk mit Diagramm oder Ausfall anlegen zu können, muss zunächst das Stabendgelenk angelegt werden. Wenn RFEM das Stabendgelenk kennt, kann dieses über die Schnittstelle IMemberEndRelease geholt werden. Diese Schnittstelle verfügt dann über die Methoden GetData() und SetData(). Beide Methoden sind in der Lage sowohl die einfachen Stabendgelenkdaten vom Typ MemberEndRelease als auch die Daten einer Nichtlinearität auszulesen bzw. zu schreiben.
Im folgenden Beispiel wird in Stabendgelenk zunächst für die x-Richtung ein Gelenk aktiviert und dann als Nichtlinearität in x-Richtung der Typ WorkingDiagramType eingestellt. Nachdem diese Daten mithilfe eines Prepare-Finish-Modification-Blocks an RFEM übergeben wurden, legt dieses intern die Nichtlinearität an. Um diese mit Daten zu füllen, werden zunächst die vorhandenen Daten über GetData() von der Schnittstelle des Stabendgelenks geholt.
Nachdem die Daten (NonlinearityDiagram) ausgefüllt wurden, werde diese wieder mit SetData() übergeben:
Sub SetNLDiagram()Dim model As RFEM5.modelSet model = GetObject(, "RFEM5.Model")On Error GoTo eDim iApp As RFEM5.ApplicationSet iApp = model.GetApplicationiApp.LockLicenseiApp.ShowDim iModelData As RFEM5.iModelDataSet iModelData = model.GetModelData' modify member end release' set nonlinearity "Diagram" for x translationDim iMemHing As RFEM5.IMemberHingeSet iMemHing = iModelData.GetMemberHinge(1, AtNo)Dim memHing As RFEM5.MemberHingememHing = iMemHing.GetData()memHing.TranslationalConstantX = 0memHing.TranslationalNonlinearityX = WorkingDiagramType' Set new dataiModelData.PrepareModificationiMemHing.SetData memHingiModelData.FinishModification' create diagramDim tbl1() As DoubleReDim tbl1(1, 1)tbl1(0, 0) = 0 ' u-xtbl1(0, 1) = 0 ' P-xtbl1(1, 0) = 0.02 ' u-x (mm)tbl1(1, 1) = 2000 ' P-x (N)Dim nldHing As RFEM5.NonlinearityDiagramnldHing.ForceType = StiffnessDiagramForceType.NoneStiffnessForcenldHing.PositiveZoneType = DiagramAfterLastStepType.TearingDiagramTypenldHing.PositiveZone = tbl1nldHing.Symmetric = TrueDim iNldiag As RFEM5.INonlinearityDiagramSet iNldiag = iMemHing.GetNonlinearity(AlongAxisX)' Set new dataiModelData.PrepareModificationiNldiag.SetData nldHingiModelData.FinishModificatione: If Err.Number <> 0 Then MsgBox Err.description, , Err.Sourcemodel.GetApplication.UnlockLicenseEnd Sub
Die Vorgehensweise ist für Knotenlager und andere Nichtlinearitäten analog.
Die Linienfreigaben gibt es in dieser Form in RFEM 6 aktuell noch nicht.
Sie können Nichtlinearitäten in Zukunft aber auch direkt bei den Liniengelenken definieren.Zum aktuellen Stand (November 2021) stehen diese Nichtlinearitäten allerdings leider noch nicht gänzlich zur Verfügung. Diese werden über Programmupdates nachgereicht.
Weitere Freigabetypen für Knoten, Linien und Flächen sind zum aktuellen Stand ebenfalls noch in Entwicklung. Diese werden ebenfalls über Programmupdates nachgereicht.
La fricción es una no linealidad y, por lo tanto, solo se puede modificar a través de la interfaz con la articulación de la barra.
Para esto, primero es necesario crear la articulación de la barra, si aún no está disponible. Luego, la interfaz IMemberHinge se lleva a la articulación de la barra y luego a la no linealidad (aquí IFriction ). Luego, puede usar los métodos GetData y SetData para modificar los datos (aquí Friction):
Sub SetMemberHingeFriction () Dim model As RFEM5.model Set model = GetObject(, "RFEM5.Model") model.GetApplication.LockLicense On Error GoTo e Dim data As IModelData Set data = model.GetModelDataAtenuar la articulación (0 a 0) como RFEM5. hinge(0).No = 1 hinge(0).RotationalConstantX = 1 hinge(0).RotationalConstantY = 2 hinge(0).RotationalConstantZ = 3 hinge(0).TranslationalConstantX = 4 hinge(0).TranslationalConstantY = 5 hinge(0).TranslationalConstantZ = 6 hinge(0).Comment = "Member Hinge 1" hinge(0).TranslationalNonlinearityX = FrictionAType data.PrepareModification data.SetMemberHinges hinge data.FinishModification ' get interface for member hinge Dim imemhing As IMemberHinge Set imemhing = data.GetMemberHinge(1, AtNo) 'obtener interfaz para "fricción" no lineal Dim iFric As IFriction Set iFric = imemhing.GetNonlinearity(AlongAxisX) ' get friction data Dim fric As Friction fric = iFric.GetData fric.Coefficient1 = 0.3 ' set friction data data.PrepareModification iFric.SetData fric data.FinishModification e: If Err.Number <> 0 Then MsgBox Err.description, , Err.Source Set data = Nothing model.GetApplication.UnlockLicense Set model = NothingEnd Sub
En el caso de la fricción Vy + Vz, se usa el "Coefficient2" para establecer el segundo coeficiente. La constante elástica en el cuadro de diálogo "Fricción" está controlada por el muelle traslacional de la articulación en el extremo de la barra. En este caso particular, se trata de TranslationalConstantX para la dirección x (ver imagen 01).
La siguiente macro de VBA muestra la creación de un apoyo en nudo con un diagrama de no linealidad. El código fuente se puede encontrar en Descargas.
Es stehen zwei Auswahlmöglichkeiten zur Verfügung: eine automatische Zeitschrittwahl und eine manuelle. Gerade für eine Struktur mit Nichtlinearitäten wird immer empfohlen, den Zeitschritt manuell zu wählen, da die automatische Ermittlung nur anhand der definierten Akzelerogramme bzw. Zeitdiagramme durchgeführt wird. Dafür sollte eine Zeitschrittkonvergenzstudie durchgeführt werden, welche die Berechnungszeit und die Genauigkeit ins Verhältnis setzt.
Der zu wählende Zeitschritt ist von vielen Faktoren abhängig, darunter die Erregungsfrequenz, die Frequenz und die Größe der Struktur, sowie der Grad an Nichtlinearitäten. Es kann also keine allgemeingültige Aussage über die Größe des Zeitschritts getroffen werden.
Um eine ausreichende Genauigkeit zu erreichen, sollte die maßgebende Periode T = 1/f in etwa 20 Schritte unterteilt werden, d. h. der Zeitschritt Δt ist wie folgt zu wählen:
$\mathrm{Δt}\;<\frac{\mathrm T}{20}\;=\;\frac1{20\mathrm f}\;=\;\frac{\mathrm\pi}{10\mathrm\omega\;}$
Für transient definierte Anregungen, wie Akzelerogramme oder tabellierte Zeitdiagramme, sollte der kürzeste Zeitabschnitt in 7 Schritte unterteilt werden:
$\mathrm{Δt}\;=\;\frac{\mathrm{Min}\left\{{\mathrm t}_{\mathrm i+1}\right.-\;{\mathrm t}_{\mathrm i}\}\;}7$
Unabhängig der Berechnung werden Zeitschritte zum Speichern der Ergebnisse angegeben.
' get model interface Set iApp = iModel.GetApplication() iApp.LockLicense ' get calculation interface Dim iCalc As RFEM5.ICalculation2 Set iCalc = iModel.GetCalculation ' get surface bending theory Dim calc_bend As RFEM5.BendingTheoryType calc_bend = iCalc.GetBendingTheory ' get settings for nonlinearities Dim calc_nl As RFEM5.CalculationNonlinearities calc_nl = iCalc.GetNonlinearities ' get precision and tolerance settings Dim calc_prec As RFEM5.PrecisionAndTolerance calc_prec = iCalc.GetPrecisionAndTolerance ' get calculation settings Dim calc_sets As RFEM5.CalculationSettings calc_sets = iCalc.GetSettings ' obtener opciones de cálculo Dim calc_opts As RFEM5.CalculationOptions calc_opts = iCalc.GetOptions ' set ShearStiffness to false calc_opts.ShearStiffness = False iCalc.SetOptions calc_opts
Bei einer Lochleibung werden die Kräfte nur über Druck übertragen. Zugkräfte treten nicht auf. Diese Effekte könnten Sie wie folgt modellieren (Beispiel siehe Bild):
1. Öffnung in Fläche erzeugen
2. Einen Balkenstab mit der Nichtlinearität Ausfall bei Zug erzeugen und in Öffnung setzen. Es ist wichtig, einen Balkenstab und keinen Druckstab zu verwenden (ein Druckstab ist ein Fachwerkstab, wodurch das System kinematisch wäre).
3. Stab in Öffnung rotieren und dabei mehrfach kopieren
Anstelle der Stäbe könnte man die Öffnung auch durch eine Fläche mit der Steifigkeit Membranzugfrei füllen. Bei der Verwendung dieser Flächensteifigkeit geschieht Folgendes:
Die Berechnung erfolgt in mehreren Iterationen. Nach der ersten Iteration wird überprüft, in welchen Flächenelementen für die Hauptmembranspannung Zug auftritt. Diese Elemente fallen in der nächsten Iteration aus (besser gesagt, die Steifigkeit wird stark reduziert).
Bei beiden Modellierungsvarianten sollte man in etwa die gleichen Ergebnisse erhalten.